↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
div3: (b,b,f)
le3: (b,b,f)
if4: (b,b,b,f)
minus3: (b,b,f)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
div_3_in_gga3(X, s_11(Y), Z) -> if_div_3_in_1_gga4(X, Y, Z, le_3_in_gga3(s_11(Y), X, B))
le_3_in_gga3(0_0, Y, true_0) -> le_3_out_gga3(0_0, Y, true_0)
le_3_in_gga3(s_11(X), 0_0, false_0) -> le_3_out_gga3(s_11(X), 0_0, false_0)
le_3_in_gga3(s_11(X), s_11(Y), B) -> if_le_3_in_1_gga4(X, Y, B, le_3_in_gga3(X, Y, B))
if_le_3_in_1_gga4(X, Y, B, le_3_out_gga3(X, Y, B)) -> le_3_out_gga3(s_11(X), s_11(Y), B)
if_div_3_in_1_gga4(X, Y, Z, le_3_out_gga3(s_11(Y), X, B)) -> if_div_3_in_2_gga5(X, Y, Z, B, if_4_in_ggga4(B, X, s_11(Y), Z))
if_4_in_ggga4(false_0, X, s_11(Y), 0_0) -> if_4_out_ggga4(false_0, X, s_11(Y), 0_0)
if_4_in_ggga4(true_0, X, s_11(Y), s_11(Z)) -> if_if_4_in_1_ggga4(X, Y, Z, minus_3_in_gga3(X, Y, U))
minus_3_in_gga3(X, 0_0, X) -> minus_3_out_gga3(X, 0_0, X)
minus_3_in_gga3(s_11(X), s_11(Y), Z) -> if_minus_3_in_1_gga4(X, Y, Z, minus_3_in_gga3(X, Y, Z))
if_minus_3_in_1_gga4(X, Y, Z, minus_3_out_gga3(X, Y, Z)) -> minus_3_out_gga3(s_11(X), s_11(Y), Z)
if_if_4_in_1_ggga4(X, Y, Z, minus_3_out_gga3(X, Y, U)) -> if_if_4_in_2_ggga5(X, Y, Z, U, div_3_in_gga3(U, s_11(Y), Z))
if_if_4_in_2_ggga5(X, Y, Z, U, div_3_out_gga3(U, s_11(Y), Z)) -> if_4_out_ggga4(true_0, X, s_11(Y), s_11(Z))
if_div_3_in_2_gga5(X, Y, Z, B, if_4_out_ggga4(B, X, s_11(Y), Z)) -> div_3_out_gga3(X, s_11(Y), Z)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PrologToPiTRSProof
div_3_in_gga3(X, s_11(Y), Z) -> if_div_3_in_1_gga4(X, Y, Z, le_3_in_gga3(s_11(Y), X, B))
le_3_in_gga3(0_0, Y, true_0) -> le_3_out_gga3(0_0, Y, true_0)
le_3_in_gga3(s_11(X), 0_0, false_0) -> le_3_out_gga3(s_11(X), 0_0, false_0)
le_3_in_gga3(s_11(X), s_11(Y), B) -> if_le_3_in_1_gga4(X, Y, B, le_3_in_gga3(X, Y, B))
if_le_3_in_1_gga4(X, Y, B, le_3_out_gga3(X, Y, B)) -> le_3_out_gga3(s_11(X), s_11(Y), B)
if_div_3_in_1_gga4(X, Y, Z, le_3_out_gga3(s_11(Y), X, B)) -> if_div_3_in_2_gga5(X, Y, Z, B, if_4_in_ggga4(B, X, s_11(Y), Z))
if_4_in_ggga4(false_0, X, s_11(Y), 0_0) -> if_4_out_ggga4(false_0, X, s_11(Y), 0_0)
if_4_in_ggga4(true_0, X, s_11(Y), s_11(Z)) -> if_if_4_in_1_ggga4(X, Y, Z, minus_3_in_gga3(X, Y, U))
minus_3_in_gga3(X, 0_0, X) -> minus_3_out_gga3(X, 0_0, X)
minus_3_in_gga3(s_11(X), s_11(Y), Z) -> if_minus_3_in_1_gga4(X, Y, Z, minus_3_in_gga3(X, Y, Z))
if_minus_3_in_1_gga4(X, Y, Z, minus_3_out_gga3(X, Y, Z)) -> minus_3_out_gga3(s_11(X), s_11(Y), Z)
if_if_4_in_1_ggga4(X, Y, Z, minus_3_out_gga3(X, Y, U)) -> if_if_4_in_2_ggga5(X, Y, Z, U, div_3_in_gga3(U, s_11(Y), Z))
if_if_4_in_2_ggga5(X, Y, Z, U, div_3_out_gga3(U, s_11(Y), Z)) -> if_4_out_ggga4(true_0, X, s_11(Y), s_11(Z))
if_div_3_in_2_gga5(X, Y, Z, B, if_4_out_ggga4(B, X, s_11(Y), Z)) -> div_3_out_gga3(X, s_11(Y), Z)
DIV_3_IN_GGA3(X, s_11(Y), Z) -> IF_DIV_3_IN_1_GGA4(X, Y, Z, le_3_in_gga3(s_11(Y), X, B))
DIV_3_IN_GGA3(X, s_11(Y), Z) -> LE_3_IN_GGA3(s_11(Y), X, B)
LE_3_IN_GGA3(s_11(X), s_11(Y), B) -> IF_LE_3_IN_1_GGA4(X, Y, B, le_3_in_gga3(X, Y, B))
LE_3_IN_GGA3(s_11(X), s_11(Y), B) -> LE_3_IN_GGA3(X, Y, B)
IF_DIV_3_IN_1_GGA4(X, Y, Z, le_3_out_gga3(s_11(Y), X, B)) -> IF_DIV_3_IN_2_GGA5(X, Y, Z, B, if_4_in_ggga4(B, X, s_11(Y), Z))
IF_DIV_3_IN_1_GGA4(X, Y, Z, le_3_out_gga3(s_11(Y), X, B)) -> IF_4_IN_GGGA4(B, X, s_11(Y), Z)
IF_4_IN_GGGA4(true_0, X, s_11(Y), s_11(Z)) -> IF_IF_4_IN_1_GGGA4(X, Y, Z, minus_3_in_gga3(X, Y, U))
IF_4_IN_GGGA4(true_0, X, s_11(Y), s_11(Z)) -> MINUS_3_IN_GGA3(X, Y, U)
MINUS_3_IN_GGA3(s_11(X), s_11(Y), Z) -> IF_MINUS_3_IN_1_GGA4(X, Y, Z, minus_3_in_gga3(X, Y, Z))
MINUS_3_IN_GGA3(s_11(X), s_11(Y), Z) -> MINUS_3_IN_GGA3(X, Y, Z)
IF_IF_4_IN_1_GGGA4(X, Y, Z, minus_3_out_gga3(X, Y, U)) -> IF_IF_4_IN_2_GGGA5(X, Y, Z, U, div_3_in_gga3(U, s_11(Y), Z))
IF_IF_4_IN_1_GGGA4(X, Y, Z, minus_3_out_gga3(X, Y, U)) -> DIV_3_IN_GGA3(U, s_11(Y), Z)
div_3_in_gga3(X, s_11(Y), Z) -> if_div_3_in_1_gga4(X, Y, Z, le_3_in_gga3(s_11(Y), X, B))
le_3_in_gga3(0_0, Y, true_0) -> le_3_out_gga3(0_0, Y, true_0)
le_3_in_gga3(s_11(X), 0_0, false_0) -> le_3_out_gga3(s_11(X), 0_0, false_0)
le_3_in_gga3(s_11(X), s_11(Y), B) -> if_le_3_in_1_gga4(X, Y, B, le_3_in_gga3(X, Y, B))
if_le_3_in_1_gga4(X, Y, B, le_3_out_gga3(X, Y, B)) -> le_3_out_gga3(s_11(X), s_11(Y), B)
if_div_3_in_1_gga4(X, Y, Z, le_3_out_gga3(s_11(Y), X, B)) -> if_div_3_in_2_gga5(X, Y, Z, B, if_4_in_ggga4(B, X, s_11(Y), Z))
if_4_in_ggga4(false_0, X, s_11(Y), 0_0) -> if_4_out_ggga4(false_0, X, s_11(Y), 0_0)
if_4_in_ggga4(true_0, X, s_11(Y), s_11(Z)) -> if_if_4_in_1_ggga4(X, Y, Z, minus_3_in_gga3(X, Y, U))
minus_3_in_gga3(X, 0_0, X) -> minus_3_out_gga3(X, 0_0, X)
minus_3_in_gga3(s_11(X), s_11(Y), Z) -> if_minus_3_in_1_gga4(X, Y, Z, minus_3_in_gga3(X, Y, Z))
if_minus_3_in_1_gga4(X, Y, Z, minus_3_out_gga3(X, Y, Z)) -> minus_3_out_gga3(s_11(X), s_11(Y), Z)
if_if_4_in_1_ggga4(X, Y, Z, minus_3_out_gga3(X, Y, U)) -> if_if_4_in_2_ggga5(X, Y, Z, U, div_3_in_gga3(U, s_11(Y), Z))
if_if_4_in_2_ggga5(X, Y, Z, U, div_3_out_gga3(U, s_11(Y), Z)) -> if_4_out_ggga4(true_0, X, s_11(Y), s_11(Z))
if_div_3_in_2_gga5(X, Y, Z, B, if_4_out_ggga4(B, X, s_11(Y), Z)) -> div_3_out_gga3(X, s_11(Y), Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
DIV_3_IN_GGA3(X, s_11(Y), Z) -> IF_DIV_3_IN_1_GGA4(X, Y, Z, le_3_in_gga3(s_11(Y), X, B))
DIV_3_IN_GGA3(X, s_11(Y), Z) -> LE_3_IN_GGA3(s_11(Y), X, B)
LE_3_IN_GGA3(s_11(X), s_11(Y), B) -> IF_LE_3_IN_1_GGA4(X, Y, B, le_3_in_gga3(X, Y, B))
LE_3_IN_GGA3(s_11(X), s_11(Y), B) -> LE_3_IN_GGA3(X, Y, B)
IF_DIV_3_IN_1_GGA4(X, Y, Z, le_3_out_gga3(s_11(Y), X, B)) -> IF_DIV_3_IN_2_GGA5(X, Y, Z, B, if_4_in_ggga4(B, X, s_11(Y), Z))
IF_DIV_3_IN_1_GGA4(X, Y, Z, le_3_out_gga3(s_11(Y), X, B)) -> IF_4_IN_GGGA4(B, X, s_11(Y), Z)
IF_4_IN_GGGA4(true_0, X, s_11(Y), s_11(Z)) -> IF_IF_4_IN_1_GGGA4(X, Y, Z, minus_3_in_gga3(X, Y, U))
IF_4_IN_GGGA4(true_0, X, s_11(Y), s_11(Z)) -> MINUS_3_IN_GGA3(X, Y, U)
MINUS_3_IN_GGA3(s_11(X), s_11(Y), Z) -> IF_MINUS_3_IN_1_GGA4(X, Y, Z, minus_3_in_gga3(X, Y, Z))
MINUS_3_IN_GGA3(s_11(X), s_11(Y), Z) -> MINUS_3_IN_GGA3(X, Y, Z)
IF_IF_4_IN_1_GGGA4(X, Y, Z, minus_3_out_gga3(X, Y, U)) -> IF_IF_4_IN_2_GGGA5(X, Y, Z, U, div_3_in_gga3(U, s_11(Y), Z))
IF_IF_4_IN_1_GGGA4(X, Y, Z, minus_3_out_gga3(X, Y, U)) -> DIV_3_IN_GGA3(U, s_11(Y), Z)
div_3_in_gga3(X, s_11(Y), Z) -> if_div_3_in_1_gga4(X, Y, Z, le_3_in_gga3(s_11(Y), X, B))
le_3_in_gga3(0_0, Y, true_0) -> le_3_out_gga3(0_0, Y, true_0)
le_3_in_gga3(s_11(X), 0_0, false_0) -> le_3_out_gga3(s_11(X), 0_0, false_0)
le_3_in_gga3(s_11(X), s_11(Y), B) -> if_le_3_in_1_gga4(X, Y, B, le_3_in_gga3(X, Y, B))
if_le_3_in_1_gga4(X, Y, B, le_3_out_gga3(X, Y, B)) -> le_3_out_gga3(s_11(X), s_11(Y), B)
if_div_3_in_1_gga4(X, Y, Z, le_3_out_gga3(s_11(Y), X, B)) -> if_div_3_in_2_gga5(X, Y, Z, B, if_4_in_ggga4(B, X, s_11(Y), Z))
if_4_in_ggga4(false_0, X, s_11(Y), 0_0) -> if_4_out_ggga4(false_0, X, s_11(Y), 0_0)
if_4_in_ggga4(true_0, X, s_11(Y), s_11(Z)) -> if_if_4_in_1_ggga4(X, Y, Z, minus_3_in_gga3(X, Y, U))
minus_3_in_gga3(X, 0_0, X) -> minus_3_out_gga3(X, 0_0, X)
minus_3_in_gga3(s_11(X), s_11(Y), Z) -> if_minus_3_in_1_gga4(X, Y, Z, minus_3_in_gga3(X, Y, Z))
if_minus_3_in_1_gga4(X, Y, Z, minus_3_out_gga3(X, Y, Z)) -> minus_3_out_gga3(s_11(X), s_11(Y), Z)
if_if_4_in_1_ggga4(X, Y, Z, minus_3_out_gga3(X, Y, U)) -> if_if_4_in_2_ggga5(X, Y, Z, U, div_3_in_gga3(U, s_11(Y), Z))
if_if_4_in_2_ggga5(X, Y, Z, U, div_3_out_gga3(U, s_11(Y), Z)) -> if_4_out_ggga4(true_0, X, s_11(Y), s_11(Z))
if_div_3_in_2_gga5(X, Y, Z, B, if_4_out_ggga4(B, X, s_11(Y), Z)) -> div_3_out_gga3(X, s_11(Y), Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
MINUS_3_IN_GGA3(s_11(X), s_11(Y), Z) -> MINUS_3_IN_GGA3(X, Y, Z)
div_3_in_gga3(X, s_11(Y), Z) -> if_div_3_in_1_gga4(X, Y, Z, le_3_in_gga3(s_11(Y), X, B))
le_3_in_gga3(0_0, Y, true_0) -> le_3_out_gga3(0_0, Y, true_0)
le_3_in_gga3(s_11(X), 0_0, false_0) -> le_3_out_gga3(s_11(X), 0_0, false_0)
le_3_in_gga3(s_11(X), s_11(Y), B) -> if_le_3_in_1_gga4(X, Y, B, le_3_in_gga3(X, Y, B))
if_le_3_in_1_gga4(X, Y, B, le_3_out_gga3(X, Y, B)) -> le_3_out_gga3(s_11(X), s_11(Y), B)
if_div_3_in_1_gga4(X, Y, Z, le_3_out_gga3(s_11(Y), X, B)) -> if_div_3_in_2_gga5(X, Y, Z, B, if_4_in_ggga4(B, X, s_11(Y), Z))
if_4_in_ggga4(false_0, X, s_11(Y), 0_0) -> if_4_out_ggga4(false_0, X, s_11(Y), 0_0)
if_4_in_ggga4(true_0, X, s_11(Y), s_11(Z)) -> if_if_4_in_1_ggga4(X, Y, Z, minus_3_in_gga3(X, Y, U))
minus_3_in_gga3(X, 0_0, X) -> minus_3_out_gga3(X, 0_0, X)
minus_3_in_gga3(s_11(X), s_11(Y), Z) -> if_minus_3_in_1_gga4(X, Y, Z, minus_3_in_gga3(X, Y, Z))
if_minus_3_in_1_gga4(X, Y, Z, minus_3_out_gga3(X, Y, Z)) -> minus_3_out_gga3(s_11(X), s_11(Y), Z)
if_if_4_in_1_ggga4(X, Y, Z, minus_3_out_gga3(X, Y, U)) -> if_if_4_in_2_ggga5(X, Y, Z, U, div_3_in_gga3(U, s_11(Y), Z))
if_if_4_in_2_ggga5(X, Y, Z, U, div_3_out_gga3(U, s_11(Y), Z)) -> if_4_out_ggga4(true_0, X, s_11(Y), s_11(Z))
if_div_3_in_2_gga5(X, Y, Z, B, if_4_out_ggga4(B, X, s_11(Y), Z)) -> div_3_out_gga3(X, s_11(Y), Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
MINUS_3_IN_GGA3(s_11(X), s_11(Y), Z) -> MINUS_3_IN_GGA3(X, Y, Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
MINUS_3_IN_GGA2(s_11(X), s_11(Y)) -> MINUS_3_IN_GGA2(X, Y)
From the DPs we obtained the following set of size-change graphs:
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PrologToPiTRSProof
LE_3_IN_GGA3(s_11(X), s_11(Y), B) -> LE_3_IN_GGA3(X, Y, B)
div_3_in_gga3(X, s_11(Y), Z) -> if_div_3_in_1_gga4(X, Y, Z, le_3_in_gga3(s_11(Y), X, B))
le_3_in_gga3(0_0, Y, true_0) -> le_3_out_gga3(0_0, Y, true_0)
le_3_in_gga3(s_11(X), 0_0, false_0) -> le_3_out_gga3(s_11(X), 0_0, false_0)
le_3_in_gga3(s_11(X), s_11(Y), B) -> if_le_3_in_1_gga4(X, Y, B, le_3_in_gga3(X, Y, B))
if_le_3_in_1_gga4(X, Y, B, le_3_out_gga3(X, Y, B)) -> le_3_out_gga3(s_11(X), s_11(Y), B)
if_div_3_in_1_gga4(X, Y, Z, le_3_out_gga3(s_11(Y), X, B)) -> if_div_3_in_2_gga5(X, Y, Z, B, if_4_in_ggga4(B, X, s_11(Y), Z))
if_4_in_ggga4(false_0, X, s_11(Y), 0_0) -> if_4_out_ggga4(false_0, X, s_11(Y), 0_0)
if_4_in_ggga4(true_0, X, s_11(Y), s_11(Z)) -> if_if_4_in_1_ggga4(X, Y, Z, minus_3_in_gga3(X, Y, U))
minus_3_in_gga3(X, 0_0, X) -> minus_3_out_gga3(X, 0_0, X)
minus_3_in_gga3(s_11(X), s_11(Y), Z) -> if_minus_3_in_1_gga4(X, Y, Z, minus_3_in_gga3(X, Y, Z))
if_minus_3_in_1_gga4(X, Y, Z, minus_3_out_gga3(X, Y, Z)) -> minus_3_out_gga3(s_11(X), s_11(Y), Z)
if_if_4_in_1_ggga4(X, Y, Z, minus_3_out_gga3(X, Y, U)) -> if_if_4_in_2_ggga5(X, Y, Z, U, div_3_in_gga3(U, s_11(Y), Z))
if_if_4_in_2_ggga5(X, Y, Z, U, div_3_out_gga3(U, s_11(Y), Z)) -> if_4_out_ggga4(true_0, X, s_11(Y), s_11(Z))
if_div_3_in_2_gga5(X, Y, Z, B, if_4_out_ggga4(B, X, s_11(Y), Z)) -> div_3_out_gga3(X, s_11(Y), Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PrologToPiTRSProof
LE_3_IN_GGA3(s_11(X), s_11(Y), B) -> LE_3_IN_GGA3(X, Y, B)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PrologToPiTRSProof
LE_3_IN_GGA2(s_11(X), s_11(Y)) -> LE_3_IN_GGA2(X, Y)
From the DPs we obtained the following set of size-change graphs:
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
IF_IF_4_IN_1_GGGA4(X, Y, Z, minus_3_out_gga3(X, Y, U)) -> DIV_3_IN_GGA3(U, s_11(Y), Z)
DIV_3_IN_GGA3(X, s_11(Y), Z) -> IF_DIV_3_IN_1_GGA4(X, Y, Z, le_3_in_gga3(s_11(Y), X, B))
IF_4_IN_GGGA4(true_0, X, s_11(Y), s_11(Z)) -> IF_IF_4_IN_1_GGGA4(X, Y, Z, minus_3_in_gga3(X, Y, U))
IF_DIV_3_IN_1_GGA4(X, Y, Z, le_3_out_gga3(s_11(Y), X, B)) -> IF_4_IN_GGGA4(B, X, s_11(Y), Z)
div_3_in_gga3(X, s_11(Y), Z) -> if_div_3_in_1_gga4(X, Y, Z, le_3_in_gga3(s_11(Y), X, B))
le_3_in_gga3(0_0, Y, true_0) -> le_3_out_gga3(0_0, Y, true_0)
le_3_in_gga3(s_11(X), 0_0, false_0) -> le_3_out_gga3(s_11(X), 0_0, false_0)
le_3_in_gga3(s_11(X), s_11(Y), B) -> if_le_3_in_1_gga4(X, Y, B, le_3_in_gga3(X, Y, B))
if_le_3_in_1_gga4(X, Y, B, le_3_out_gga3(X, Y, B)) -> le_3_out_gga3(s_11(X), s_11(Y), B)
if_div_3_in_1_gga4(X, Y, Z, le_3_out_gga3(s_11(Y), X, B)) -> if_div_3_in_2_gga5(X, Y, Z, B, if_4_in_ggga4(B, X, s_11(Y), Z))
if_4_in_ggga4(false_0, X, s_11(Y), 0_0) -> if_4_out_ggga4(false_0, X, s_11(Y), 0_0)
if_4_in_ggga4(true_0, X, s_11(Y), s_11(Z)) -> if_if_4_in_1_ggga4(X, Y, Z, minus_3_in_gga3(X, Y, U))
minus_3_in_gga3(X, 0_0, X) -> minus_3_out_gga3(X, 0_0, X)
minus_3_in_gga3(s_11(X), s_11(Y), Z) -> if_minus_3_in_1_gga4(X, Y, Z, minus_3_in_gga3(X, Y, Z))
if_minus_3_in_1_gga4(X, Y, Z, minus_3_out_gga3(X, Y, Z)) -> minus_3_out_gga3(s_11(X), s_11(Y), Z)
if_if_4_in_1_ggga4(X, Y, Z, minus_3_out_gga3(X, Y, U)) -> if_if_4_in_2_ggga5(X, Y, Z, U, div_3_in_gga3(U, s_11(Y), Z))
if_if_4_in_2_ggga5(X, Y, Z, U, div_3_out_gga3(U, s_11(Y), Z)) -> if_4_out_ggga4(true_0, X, s_11(Y), s_11(Z))
if_div_3_in_2_gga5(X, Y, Z, B, if_4_out_ggga4(B, X, s_11(Y), Z)) -> div_3_out_gga3(X, s_11(Y), Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PrologToPiTRSProof
IF_IF_4_IN_1_GGGA4(X, Y, Z, minus_3_out_gga3(X, Y, U)) -> DIV_3_IN_GGA3(U, s_11(Y), Z)
DIV_3_IN_GGA3(X, s_11(Y), Z) -> IF_DIV_3_IN_1_GGA4(X, Y, Z, le_3_in_gga3(s_11(Y), X, B))
IF_4_IN_GGGA4(true_0, X, s_11(Y), s_11(Z)) -> IF_IF_4_IN_1_GGGA4(X, Y, Z, minus_3_in_gga3(X, Y, U))
IF_DIV_3_IN_1_GGA4(X, Y, Z, le_3_out_gga3(s_11(Y), X, B)) -> IF_4_IN_GGGA4(B, X, s_11(Y), Z)
le_3_in_gga3(s_11(X), 0_0, false_0) -> le_3_out_gga3(s_11(X), 0_0, false_0)
le_3_in_gga3(s_11(X), s_11(Y), B) -> if_le_3_in_1_gga4(X, Y, B, le_3_in_gga3(X, Y, B))
minus_3_in_gga3(X, 0_0, X) -> minus_3_out_gga3(X, 0_0, X)
minus_3_in_gga3(s_11(X), s_11(Y), Z) -> if_minus_3_in_1_gga4(X, Y, Z, minus_3_in_gga3(X, Y, Z))
if_le_3_in_1_gga4(X, Y, B, le_3_out_gga3(X, Y, B)) -> le_3_out_gga3(s_11(X), s_11(Y), B)
if_minus_3_in_1_gga4(X, Y, Z, minus_3_out_gga3(X, Y, Z)) -> minus_3_out_gga3(s_11(X), s_11(Y), Z)
le_3_in_gga3(0_0, Y, true_0) -> le_3_out_gga3(0_0, Y, true_0)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ PrologToPiTRSProof
IF_IF_4_IN_1_GGGA2(Y, minus_3_out_gga1(U)) -> DIV_3_IN_GGA2(U, s_11(Y))
DIV_3_IN_GGA2(X, s_11(Y)) -> IF_DIV_3_IN_1_GGA3(X, Y, le_3_in_gga2(s_11(Y), X))
IF_4_IN_GGGA3(true_0, X, s_11(Y)) -> IF_IF_4_IN_1_GGGA2(Y, minus_3_in_gga2(X, Y))
IF_DIV_3_IN_1_GGA3(X, Y, le_3_out_gga1(B)) -> IF_4_IN_GGGA3(B, X, s_11(Y))
le_3_in_gga2(s_11(X), 0_0) -> le_3_out_gga1(false_0)
le_3_in_gga2(s_11(X), s_11(Y)) -> if_le_3_in_1_gga1(le_3_in_gga2(X, Y))
minus_3_in_gga2(X, 0_0) -> minus_3_out_gga1(X)
minus_3_in_gga2(s_11(X), s_11(Y)) -> if_minus_3_in_1_gga1(minus_3_in_gga2(X, Y))
if_le_3_in_1_gga1(le_3_out_gga1(B)) -> le_3_out_gga1(B)
if_minus_3_in_1_gga1(minus_3_out_gga1(Z)) -> minus_3_out_gga1(Z)
le_3_in_gga2(0_0, Y) -> le_3_out_gga1(true_0)
le_3_in_gga2(x0, x1)
minus_3_in_gga2(x0, x1)
if_le_3_in_1_gga1(x0)
if_minus_3_in_1_gga1(x0)
div_3_in_gga3(X, s_11(Y), Z) -> if_div_3_in_1_gga4(X, Y, Z, le_3_in_gga3(s_11(Y), X, B))
le_3_in_gga3(0_0, Y, true_0) -> le_3_out_gga3(0_0, Y, true_0)
le_3_in_gga3(s_11(X), 0_0, false_0) -> le_3_out_gga3(s_11(X), 0_0, false_0)
le_3_in_gga3(s_11(X), s_11(Y), B) -> if_le_3_in_1_gga4(X, Y, B, le_3_in_gga3(X, Y, B))
if_le_3_in_1_gga4(X, Y, B, le_3_out_gga3(X, Y, B)) -> le_3_out_gga3(s_11(X), s_11(Y), B)
if_div_3_in_1_gga4(X, Y, Z, le_3_out_gga3(s_11(Y), X, B)) -> if_div_3_in_2_gga5(X, Y, Z, B, if_4_in_ggga4(B, X, s_11(Y), Z))
if_4_in_ggga4(false_0, X, s_11(Y), 0_0) -> if_4_out_ggga4(false_0, X, s_11(Y), 0_0)
if_4_in_ggga4(true_0, X, s_11(Y), s_11(Z)) -> if_if_4_in_1_ggga4(X, Y, Z, minus_3_in_gga3(X, Y, U))
minus_3_in_gga3(X, 0_0, X) -> minus_3_out_gga3(X, 0_0, X)
minus_3_in_gga3(s_11(X), s_11(Y), Z) -> if_minus_3_in_1_gga4(X, Y, Z, minus_3_in_gga3(X, Y, Z))
if_minus_3_in_1_gga4(X, Y, Z, minus_3_out_gga3(X, Y, Z)) -> minus_3_out_gga3(s_11(X), s_11(Y), Z)
if_if_4_in_1_ggga4(X, Y, Z, minus_3_out_gga3(X, Y, U)) -> if_if_4_in_2_ggga5(X, Y, Z, U, div_3_in_gga3(U, s_11(Y), Z))
if_if_4_in_2_ggga5(X, Y, Z, U, div_3_out_gga3(U, s_11(Y), Z)) -> if_4_out_ggga4(true_0, X, s_11(Y), s_11(Z))
if_div_3_in_2_gga5(X, Y, Z, B, if_4_out_ggga4(B, X, s_11(Y), Z)) -> div_3_out_gga3(X, s_11(Y), Z)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
div_3_in_gga3(X, s_11(Y), Z) -> if_div_3_in_1_gga4(X, Y, Z, le_3_in_gga3(s_11(Y), X, B))
le_3_in_gga3(0_0, Y, true_0) -> le_3_out_gga3(0_0, Y, true_0)
le_3_in_gga3(s_11(X), 0_0, false_0) -> le_3_out_gga3(s_11(X), 0_0, false_0)
le_3_in_gga3(s_11(X), s_11(Y), B) -> if_le_3_in_1_gga4(X, Y, B, le_3_in_gga3(X, Y, B))
if_le_3_in_1_gga4(X, Y, B, le_3_out_gga3(X, Y, B)) -> le_3_out_gga3(s_11(X), s_11(Y), B)
if_div_3_in_1_gga4(X, Y, Z, le_3_out_gga3(s_11(Y), X, B)) -> if_div_3_in_2_gga5(X, Y, Z, B, if_4_in_ggga4(B, X, s_11(Y), Z))
if_4_in_ggga4(false_0, X, s_11(Y), 0_0) -> if_4_out_ggga4(false_0, X, s_11(Y), 0_0)
if_4_in_ggga4(true_0, X, s_11(Y), s_11(Z)) -> if_if_4_in_1_ggga4(X, Y, Z, minus_3_in_gga3(X, Y, U))
minus_3_in_gga3(X, 0_0, X) -> minus_3_out_gga3(X, 0_0, X)
minus_3_in_gga3(s_11(X), s_11(Y), Z) -> if_minus_3_in_1_gga4(X, Y, Z, minus_3_in_gga3(X, Y, Z))
if_minus_3_in_1_gga4(X, Y, Z, minus_3_out_gga3(X, Y, Z)) -> minus_3_out_gga3(s_11(X), s_11(Y), Z)
if_if_4_in_1_ggga4(X, Y, Z, minus_3_out_gga3(X, Y, U)) -> if_if_4_in_2_ggga5(X, Y, Z, U, div_3_in_gga3(U, s_11(Y), Z))
if_if_4_in_2_ggga5(X, Y, Z, U, div_3_out_gga3(U, s_11(Y), Z)) -> if_4_out_ggga4(true_0, X, s_11(Y), s_11(Z))
if_div_3_in_2_gga5(X, Y, Z, B, if_4_out_ggga4(B, X, s_11(Y), Z)) -> div_3_out_gga3(X, s_11(Y), Z)